package com.wskeee.ec.utils
{
	import flash.display.BitmapData;
	import flash.display.GradientType;
	import flash.display.Shape;

	public class PolygonDrawer
	{
		/**
		 * 画复纯颜色的三角形 
		 * @param w			宽
		 * @param h			高
		 * @param color		颜色	
		 * @param alpha		颜色透明度
		 * @return 
		 * 
		 */
		public static function drawTriangle(w:Number,h:Number,color:uint=0xcccccc,alpha:Number=1):BitmapData
		{
			var icon:Shape = new Shape();
			//画三角形
			icon.graphics.beginFill(color,alpha);
			icon.graphics.moveTo(0,h);
			icon.graphics.lineTo(w,h);
			icon.graphics.lineTo(w/2,0);
			icon.graphics.endFill();
			var bmd:BitmapData = new BitmapData(w,h,true,0);
			bmd.draw(icon);
			return bmd;
		}
		
		/**
		 * 画复杂颜色的三角形 
		 * @param w			宽
		 * @param h			高
		 * @param colors	颜色比例
		 * @param alphas	颜色透明度比例
		 * @param ratios	颜色分布比例
		 * @return 
		 * 
		 */
		public static function drawGradientTriangle(w:Number,h:Number,colors:Array=null,alphas:Array=null,ratios:Array=null):BitmapData
		{
			var icon:Shape = new Shape();
			//画三角形
			icon.graphics.beginGradientFill(GradientType.RADIAL,colors,alphas,ratios);
			icon.graphics.moveTo(0,h);
			icon.graphics.lineTo(w,h);
			icon.graphics.lineTo(w/2,0);
			icon.graphics.endFill();
			var bmd:BitmapData = new BitmapData(w,h,true,0);
			bmd.draw(icon);
			return bmd;
		}
		
		/**
		 * 画复杂颜色的滚动条 滑块 icon
		 * @param w			宽
		 * @param h			高
		 * @param colors	颜色比例
		 * @param alphas	颜色透明度比例
		 * @param ratios	颜色分布比例
		 * @return 
		 * 
		 */
		public static function drawThumbIcon(w:Number,h:Number,colors:Array=null,alphas:Array=null,ratios:Array=null):BitmapData
		{
			var dGap:Number = (h-6)/2;
			var icon:Shape = new Shape();
			//画三角形
			icon.graphics.beginGradientFill(GradientType.LINEAR,colors,alphas,ratios);
			icon.graphics.drawRect(0,0,w,2);
			icon.graphics.drawRect(0,dGap+2,w,2);
			icon.graphics.drawRect(0,dGap*2+4,w,2);
			icon.graphics.endFill();
			var bmd:BitmapData = new BitmapData(w,h,true,0);
			bmd.draw(icon);
			return bmd;
		}
		
		/**
		 * 画默认 tree 组件开关 icon
		 * @param color	颜色
		 * @return 
		 */
		public static function drawDefaultOpenSwitchIcon(color:Object = 0):BitmapData
		{
			var w:Number = 9;
			var h:Number = 9;
			var icon:Shape = new Shape();
			//画三角形
			icon.graphics.lineStyle(.1,color as uint);
			icon.graphics.beginFill(0,0);
			icon.graphics.drawRect(0,0,w,h);
			
			icon.graphics.moveTo(2,h/2);
			icon.graphics.lineTo(w-2,w/2);
			
			icon.graphics.endFill();
			var bmd:BitmapData = new BitmapData(w+1,h+1,true,0);
			bmd.draw(icon);
			return bmd;
		}
		
		/**
		 * 画默认 tree 组件开关 icon
		 * @param color	颜色
		 * @return 
		 */
		public static function drawDefaultCloseSwitchIcon(color:Object = 0):BitmapData
		{
			var w:Number = 9;
			var h:Number = 9;
			var icon:Shape = new Shape();
			//画三角形
			icon.graphics.lineStyle(.1,color as uint);
			icon.graphics.beginFill(0,0);
			icon.graphics.drawRect(0,0,w,h);
			
			icon.graphics.moveTo(2,h/2);
			icon.graphics.lineTo(w-2,w/2);
			icon.graphics.moveTo(w/2,2);
			icon.graphics.lineTo(w/2,h-2);
			
			icon.graphics.endFill();
			var bmd:BitmapData = new BitmapData(w+1,h+1,true,0);
			bmd.draw(icon);
			return bmd;
		}
	}
}